package com.yunke.common.security;

import java.lang.annotation.*;

/**
 * 权限注解
 * 用于标记需要特定权限才能访问的接口
 * 
 * @author yunke
 * @since 1.0.0
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequirePermission {

    /**
     * 需要的权限
     */
    String value() default "";

    /**
     * 权限模式：AND-必须拥有所有权限，OR-拥有其中一个权限即可
     */
    Mode mode() default Mode.AND;

    /**
     * 权限模式枚举
     */
    enum Mode {
        /**
         * 必须拥有所有权限
         */
        AND,
        
        /**
         * 拥有其中一个权限即可
         */
        OR
    }
} 